﻿/*-----------------------------------------------------------------*/
; Podprogram: Konwersja liczby całkowitej lub naturalnej
;             na postać tekstową, o ew. zadanej szerokości,
;             z możliwością wstawienia kropki dziesiętnej
; Autor:   Klemens Czajka
; Data:    2025-07-16
; Argumenty:
;	B7 = Liczba Całkowita (Integer) lub Naturalna
;	A  = format: '000000000t000ckkkkssss0000000+++++*****'
;	     t=0 - w B7 jest liczba -274877906944..+274877906943
;	     t=1 - w B7 jest liczba naturalna   0...549755813887
;	     c=0 - przed kropką ma być cyfra, np. +0.23456789012
;	     c=1 - przed kropką zbędna cyfra, np. +.123456789012
;	     kkkk=0..12 -- pozycja kropki (liczba cyfr po kropce)
;		  (wartość ograniczana do maksymalnej dopuszczalnej)
;	     ssss=0..14 -- wymagana szerokość tekstu wynikowego
;		  (większe liczby będą szersze, ssss>=15 jak 14)
;	     +++++=znak liczby całkowitej nieujemnej: NU,SP,+
;		   znak liczby całkowitej ujemnej zawsze:   -
;	     *****=znak uzupełnienia do szerokości:   NU=SP,0,*
;		   (SP przed znakiem liczby,  0,*,itp. po znaku)
; Wywołanie:
;	SKS  NumText		;konwersja liczby B7 wg formatu A
; Wyniki:
;	(A,B7)	= dwa słowa tekstu wynikowego
;		  (w B7 może być tekst pusty, ale słowo niezerowe)
;	B1, B2	zniszczone, reszta odtworzona
; Uwagi:
;   ---	Używa komórek 0c17572, 0c17573, 0c17576, 0c17577
;	używanych przez program STAŁY
;   ---	Przed asemblacją należy ustawić wartość symbolu wskazującego
;	wymaganą wersję podprogramu:
;	NumTxtK EQU 0	;gdy wystarczy prosta wersja podprogramu
;	NumTxtK EQU 1	;gdy potrzebna wersja z opcjonalną kropką
/*-----------------------------------------------------------------*/
	  
;		  Dla kkkk=12, jeśli ma być cyfra przed kropką,
; _.123456789012  to należy ustawić: c=1 (bez cyfry przed kropką - podprogram sam to zrobi),
; -.123456789012  ssss=14 (maksymalną szerokość), +++++=NU, *****='0'.
; +.123456789012  Zero pojawi się w wyniku uzupełniania do ssss,
; 0.123456789012  ale tylko wtedy, gdy nie będzie znaku liczby.
